package com.regent.central.bill.core;

import com.regent.central.bill.common.BillType;
import com.regent.central.bill.common.RemittanceType;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;

@Table(name = "central_action_remittance")
public class Remittance {
    /**
     * 汇款动作ID
     */
    @Id
    private String id;

    /**
     * 老板组织ID
     */
    @Column(name = "boss_unit_id")
    private String bossUnitId;

    /**
     * 组织ID
     */
    @Column(name = "unit_id")
    private String unitId;

    /**
     * 汇款类型, 例如收款/退款
     */
    private RemittanceType type;

    /**
     * 汇款金额
     */
    private BigDecimal amount;

    /**
     * 汇款方式ID
     */
    @Column(name = "remit_method_id")
    private String remitMethodId;

    /**
     * 客户ID
     */
    @Column(name = "customer_id")
    private String customerId;

    /**
     * 供应商ID
     */
    @Column(name = "supplier_id")
    private String supplierId;

    /**
     * 单据来源类型
     */
    private BillType source;

    /**
     * 操作员ID
     */
    @Column(name = "operator_id")
    private String operatorId;

    /**
     * 操作时间
     */
    @Column(name = "date_operated")
    private Date dateOperated;

    @Column(name = "canceled")
    private Boolean canceled;
    @Column(name = "user_canceled")
    private String userCanceled;
    @Column(name = "date_canceled")
    private Date dateCanceled;

    /**
     * 记录版本
     */
    private Integer version;

    /**
     * 创建时间
     */
    @Column(name = "date_created")
    private Date dateCreated;

    /**
     * 创建人员
     */
    @Column(name = "user_created")
    private String userCreated;

    /**
     * 最后更新时间
     */
    @Column(name = "last_updated")
    private Date lastUpdated;

    /**
     * 最后更新人员
     */
    @Column(name = "user_updated")
    private String userUpdated;

    /**
     * 删除时间
     */
    @Column(name = "time_deleted")
    private Long timeDeleted;

    /**
     * 删除人员
     */
    @Column(name = "user_deleted")
    private String userDeleted;

    /**
     * 获取汇款动作ID
     *
     * @return id - 汇款动作ID
     */
    public String getId() {
        return id;
    }

    /**
     * 设置汇款动作ID
     *
     * @param id 汇款动作ID
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取老板组织ID
     *
     * @return boss_unit_id - 老板组织ID
     */
    public String getBossUnitId() {
        return bossUnitId;
    }

    /**
     * 设置老板组织ID
     *
     * @param bossUnitId 老板组织ID
     */
    public void setBossUnitId(String bossUnitId) {
        this.bossUnitId = bossUnitId;
    }

    /**
     * 获取组织ID
     *
     * @return unit_id - 组织ID
     */
    public String getUnitId() {
        return unitId;
    }

    /**
     * 设置组织ID
     *
     * @param unitId 组织ID
     */
    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    /**
     * 获取汇款类型, 例如收款/退款
     *
     * @return type - 汇款类型, 例如收款/退款
     */
    public RemittanceType getType() {
        return type;
    }

    /**
     * 设置汇款类型, 例如收款/退款
     *
     * @param type 汇款类型, 例如收款/退款
     */
    public void setType(RemittanceType type) {
        this.type = type;
    }

    /**
     * 获取汇款金额
     *
     * @return amount - 汇款金额
     */
    public BigDecimal getAmount() {
        return amount;
    }

    /**
     * 设置汇款金额
     *
     * @param amount 汇款金额
     */
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    /**
     * 获取汇款方式ID
     *
     * @return remit_method_id - 汇款方式ID
     */
    public String getRemitMethodId() {
        return remitMethodId;
    }

    /**
     * 设置汇款方式ID
     *
     * @param remitMethodId 汇款方式ID
     */
    public void setRemitMethodId(String remitMethodId) {
        this.remitMethodId = remitMethodId;
    }

    /**
     * 获取客户ID
     *
     * @return customer_id - 客户ID
     */
    public String getCustomerId() {
        return customerId;
    }

    /**
     * 设置客户ID
     *
     * @param customerId 客户ID
     */
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    /**
     * 获取供应商ID
     *
     * @return supplier_id - 供应商ID
     */
    public String getSupplierId() {
        return supplierId;
    }

    /**
     * 设置供应商ID
     *
     * @param supplierId 供应商ID
     */
    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    /**
     * 获取单据来源类型
     *
     * @return source - 单据来源类型
     */
    public BillType getSource() {
        return source;
    }

    /**
     * 设置单据来源类型
     *
     * @param source 单据来源类型
     */
    public void setSource(BillType source) {
        this.source = source;
    }

    /**
     * 获取操作员ID
     *
     * @return operator_id - 操作员ID
     */
    public String getOperatorId() {
        return operatorId;
    }

    /**
     * 设置操作员ID
     *
     * @param operatorId 操作员ID
     */
    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    /**
     * 获取操作时间
     *
     * @return date_operated - 操作时间
     */
    public Date getDateOperated() {
        return dateOperated;
    }

    /**
     * 设置操作时间
     *
     * @param dateOperated 操作时间
     */
    public void setDateOperated(Date dateOperated) {
        this.dateOperated = dateOperated;
    }

    public Boolean getCanceled() {
        return canceled;
    }

    public void setCanceled(Boolean canceled) {
        this.canceled = canceled;
    }

    public String getUserCanceled() {
        return userCanceled;
    }

    public void setUserCanceled(String userCanceled) {
        this.userCanceled = userCanceled;
    }

    public Date getDateCanceled() {
        return dateCanceled;
    }

    public void setDateCanceled(Date dateCanceled) {
        this.dateCanceled = dateCanceled;
    }

    /**
     * 获取记录版本
     *
     * @return version - 记录版本
     */
    public Integer getVersion() {
        return version;
    }

    /**
     * 设置记录版本
     *
     * @param version 记录版本
     */
    public void setVersion(Integer version) {
        this.version = version;
    }

    /**
     * 获取创建时间
     *
     * @return date_created - 创建时间
     */
    public Date getDateCreated() {
        return dateCreated;
    }

    /**
     * 设置创建时间
     *
     * @param dateCreated 创建时间
     */
    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }

    /**
     * 获取创建人员
     *
     * @return user_created - 创建人员
     */
    public String getUserCreated() {
        return userCreated;
    }

    /**
     * 设置创建人员
     *
     * @param userCreated 创建人员
     */
    public void setUserCreated(String userCreated) {
        this.userCreated = userCreated;
    }

    /**
     * 获取最后更新时间
     *
     * @return last_updated - 最后更新时间
     */
    public Date getLastUpdated() {
        return lastUpdated;
    }

    /**
     * 设置最后更新时间
     *
     * @param lastUpdated 最后更新时间
     */
    public void setLastUpdated(Date lastUpdated) {
        this.lastUpdated = lastUpdated;
    }

    /**
     * 获取最后更新人员
     *
     * @return user_updated - 最后更新人员
     */
    public String getUserUpdated() {
        return userUpdated;
    }

    /**
     * 设置最后更新人员
     *
     * @param userUpdated 最后更新人员
     */
    public void setUserUpdated(String userUpdated) {
        this.userUpdated = userUpdated;
    }

    /**
     * 获取删除时间
     *
     * @return time_deleted - 删除时间
     */
    public Long getTimeDeleted() {
        return timeDeleted;
    }

    /**
     * 设置删除时间
     *
     * @param timeDeleted 删除时间
     */
    public void setTimeDeleted(Long timeDeleted) {
        this.timeDeleted = timeDeleted;
    }

    /**
     * 获取删除人员
     *
     * @return user_deleted - 删除人员
     */
    public String getUserDeleted() {
        return userDeleted;
    }

    /**
     * 设置删除人员
     *
     * @param userDeleted 删除人员
     */
    public void setUserDeleted(String userDeleted) {
        this.userDeleted = userDeleted;
    }
}